<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>hidoc-web</title><script src="/config.js"></script><script src="/js/mermaid.min.js"></script><script>console.log('--------------------------------------');
        console.log('当前host: ' + window.location.host);
        console.log(configs);
        var defaultConfig = {}; // 默认配置
        var currentConfig = {}; // 匹配host的配置
        for (var i = 0; i < configs.length; i++) {
            var itemConfig = configs[i];

            if (itemConfig.host === window.location.host) {
                currentConfig = itemConfig;

                console.log('currentConfig:');
                console.log(itemConfig);
            }

            if (itemConfig.host === '*') {
                defaultConfig = itemConfig;

                console.log('defaultConfig:');
                console.log(itemConfig);
            }
        }
        if (currentConfig.host != undefined && currentConfig.host != null) {
            // 如果有符合host的配置，则优先使用
            localStorage.setItem('config', JSON.stringify(currentConfig));
            console.log('当前使用配置: currentConfig');
        } else {
            // 如果没有匹配host的配置，则使用默认配置*
            localStorage.setItem('config', JSON.stringify(defaultConfig));
            console.log('当前使用配置: defaultConfig');
        }
        console.log('--------------------------------------');
        var pointId = localStorage.getItem('pointId');
        if (pointId == undefined || pointId == null || pointId == '' || pointId.length < 8) {
            pointId = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
                var r = (Math.random() * 16) | 0,
                    v = c == 'x' ? r : (r & 0x3) | 0x8;
                return v.toString(16);
            });
        }
        console.log('pointId: ' + pointId);
        localStorage.setItem('pointId', pointId);
        console.log('--------------------------------------');

        // 反调试
        // setInterval(function () { debugger }, 100);</script><style>/* 禁止选择 div 内的文本 */
        .no-select {
            -webkit-user-select: none;
            /* Safari */
            -moz-user-select: none;
            /* Firefox */
            -ms-user-select: none;
            /* IE10+ */
            user-select: none;
            /* 标准语法 */
        }

        /* 创建鼠标粒子效果 */
        #particle-container {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 9999;
        }

        .particle {
            position: absolute;
            border-radius: 50%;
            pointer-events: none;
            /* 调整颜色透明度，让颜色更浅 */
            background-color: rgba(0, 0, 255, 0.1);
            animation: smokeEffect 2s ease-in-out forwards;
        }

        @keyframes smokeEffect {
            0% {
                opacity: 0.8;
                transform: scale(1) translate(0, 0);
            }

            100% {
                opacity: 0;
                transform: scale(3) translate(var(--move-x), var(--move-y));
            }
        }</style><link href="/css/chunk-02f196f0.e0048d70.css" rel="prefetch"><link href="/css/chunk-13648454.79ed8ad6.css" rel="prefetch"><link href="/css/chunk-160a212c.823eb21a.css" rel="prefetch"><link href="/css/chunk-62fae21a.652b0496.css" rel="prefetch"><link href="/css/chunk-634bffdd.906e3acf.css" rel="prefetch"><link href="/css/chunk-70ce24d2.566cc8e3.css" rel="prefetch"><link href="/css/chunk-76e6230a.290a78bb.css" rel="prefetch"><link href="/css/chunk-7beb5d2e.9c5f2a9a.css" rel="prefetch"><link href="/css/chunk-7d53899e.f836efb3.css" rel="prefetch"><link href="/css/chunk-ac1b3722.c3b9b6fa.css" rel="prefetch"><link href="/css/chunk-c8d8dfee.002a5f4a.css" rel="prefetch"><link href="/css/chunk-cac447cc.906e3acf.css" rel="prefetch"><link href="/js/chunk-02f196f0.8d03c5ff.js" rel="prefetch"><link href="/js/chunk-13648454.d1261bf4.js" rel="prefetch"><link href="/js/chunk-160a212c.83a393b2.js" rel="prefetch"><link href="/js/chunk-2d225bb6.b40e67b5.js" rel="prefetch"><link href="/js/chunk-62fae21a.af10479e.js" rel="prefetch"><link href="/js/chunk-634bffdd.a2db8f70.js" rel="prefetch"><link href="/js/chunk-70ce24d2.51dbe2d2.js" rel="prefetch"><link href="/js/chunk-76e6230a.a85c27b2.js" rel="prefetch"><link href="/js/chunk-7beb5d2e.b3e00b29.js" rel="prefetch"><link href="/js/chunk-7d53899e.5343dea7.js" rel="prefetch"><link href="/js/chunk-8dc31390.c6ebeea7.js" rel="prefetch"><link href="/js/chunk-ac1b3722.fe2b8258.js" rel="prefetch"><link href="/js/chunk-c8d8dfee.3e38fe30.js" rel="prefetch"><link href="/js/chunk-cac447cc.d204be24.js" rel="prefetch"><link href="/css/app.a6c11e3b.css" rel="preload" as="style"><link href="/css/chunk-vendors.0699c56d.css" rel="preload" as="style"><link href="/js/app.227a4324.js" rel="preload" as="script"><link href="/js/chunk-vendors.1c56e664.js" rel="preload" as="script"><link href="/css/chunk-vendors.0699c56d.css" rel="stylesheet"><link href="/css/app.a6c11e3b.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but hidoc-web doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><div id="particle-container"></div><script>// 这里创建鼠标移动时的粒子效果
        const particleContainer = document.getElementById('particle-container');
        let lastMouseX = 0;
        let lastMouseY = 0;

        // mousemove
        // document.addEventListener('mousemove', doParticle);
        // 粒子效果的实现函数
        function doParticle(event) {
            const mouseX = event.clientX;
            const mouseY = event.clientY;

            // 计算鼠标移动向量
            const dx = mouseX - lastMouseX;
            const dy = mouseY - lastMouseY;
            const distance = Math.sqrt(dx * dx + dy * dy);

            // 增加生成粒子所需的鼠标移动阈值，减少初始密集度
            if (distance > 5) {
                const particle = document.createElement('div');
                particle.classList.add('particle');

                // 随机化粒子大小
                const size = Math.random() * 10 + 5;
                particle.style.width = size + 'px';
                particle.style.height = size + 'px';

                // 结合鼠标移动方向和随机因素确定粒子飘散方向和距离
                const randomAngleOffset = (Math.random() - 0.5) * Math.PI / 2;
                const mainAngle = Math.atan2(dy, dx);
                const finalAngle = mainAngle + randomAngleOffset;
                const randomDistance = Math.random() * 50 + 20;
                const moveX = Math.cos(finalAngle) * randomDistance;
                const moveY = Math.sin(finalAngle) * randomDistance;
                particle.style.setProperty('--move-x', moveX + 'px');
                particle.style.setProperty('--move-y', moveY + 'px');

                particle.style.left = mouseX + 'px';
                particle.style.top = mouseY + 'px';

                // 随机化动画持续时间
                const duration = Math.random() * 1 + 1.5;
                particle.style.animationDuration = duration + 's';

                particleContainer.appendChild(particle);

                // 一段时间后移除粒子
                setTimeout(() => {
                    particle.remove();
                }, duration * 1000);

                lastMouseX = mouseX;
                lastMouseY = mouseY;
            }
        }</script><script src="/js/chunk-vendors.1c56e664.js"></script><script src="/js/app.227a4324.js"></script></body></html>